﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using Tippelde.Entities;
using Tippelde.Web.Helpers;
using Tippelde.Web.Models.Group;

namespace Tippelde.Web.Models.Event
{
    public class CreateEventModel
    {
        
        public int Id { get; set; }
        
        [Required]
        [Display(Name="Esemény neve")]
        public string EventName { get; set; }

        [Required]
        [Display(Name = "Rövid név")]
        public string ShortName { get; set; }
        [Display(Name = "Leírás")]
        public string Description { get; set; }
        [Display(Name = "Esemény státusz")]
        public EventStatus Status { get; set; }

        [Required]
        [Display(Name = "Hazai Csapat")]
        public int HomeTeamId { get; set; }
        [Required]        
        [Display(Name = "Idegenbeli Csapat")]
        public int AwayTeamId { get; set; }

        public string HomeTeamName { get; set; }
        public string AwayTeamName { get; set; }


        [Required]
        [DataType(DataType.DateTime)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd HH:mm}")]
        [Display(Name = "Esemény időpontja")]
        public DateTime? EventDate { get; set; }
        //[Required]
        //[DataType(DataType.Time)]
        //[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:H\\:mm}")]
        //public TimeSpan? EventDateOffset { get; set; }

        [DataType(DataType.DateTime)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd HH:mm}")]
        [DateCompare("EventDate", "A fogadás kezdetének az esemény időpontjánál korábbi dátumnak kell lennie", Type = DateCompareType.LessThan)]
        [Display(Name = "Fogadás kezdődik ekkor")]
        public DateTime? BetStartAt { get; set; }
        //[DataType(DataType.Time)]
        //[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:H\\:mm}")]
        //public TimeSpan? BetStartAtOffset { get; set; }
        
        [Display(Name = "Fogadás véget ér ekkor")]
        [DataType(DataType.DateTime)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd HH:mm}")]
        [DateCompare("EventDate", "A fogadás végének az esemény időpontjánál korábbi dátumnak kell lennie", Type = DateCompareType.LessThan)]
        [DateCompare("BetStartAt", "A fogadás végének a fogadás kezdeténél későbbi dátumnak kell lennie", Type = DateCompareType.GreaterThan)]
        public DateTime? BetEndAt { get; set; }
        //[DataType(DataType.Time)]
        //[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:H\\:mm}")]
        //public TimeSpan? BetEndAtOffset { get; set; }


        [Display(Name = "Csoportok")]
        public Dictionary<int, bool> Groups { get; set; }

        public List<SelectableGroupHeaderData> GroupList { get; set; }
    }
}